:- dynamic(capital/2).
:- initialization(geo).

geo :- carrega('geo.bd'),
	format('~n*** Memoriza capitais ***~n~n',A),
	repeat,
		pergunta(E),
		responde(E),
		continua(R),
	R = n,
	!,
	salva(capital,'geo.bd').

carrega(A) :-
	file_exists(A),
	consult(A)
	;
	true.

pergunta(E) :-
	format('~nQual o estado cuja capital você quer saber? ',A),
	gets(E).
	responde(E) :-
	capital(C, E),
	!,
	format('A capital de ~w é ~w.~n',[E,C]).
responde(E) :-
	format('Também não sei. Qual é a capital de ~w? ',[E]),
	gets(C),
	asserta(capital(C,E)).
continua(R) :-
	format('~nContinua? [s/n] ',A),
	get_char(R),
	get_char('\n').
gets(S) :-
	read(S).
salva(P,A) :-
	telling(Old),
	tell(A),
	%format(':- dynamic(capital/2).~n',X),
	listing(P),
	told,
	tell(Old).
